Pancake requires System 6.0.5 or later with the Communications Toolbox installed. It also works perfectly with System 7. It is happy running under MultiFinder and requires less than 500k to run in. However as with many Mac programs you should try and allocate it more memory, especially if you are using more than one node.
For UUCP you will need UUCP 3.x by Dave Platt. For Fidonet you will need mailer software such as Tabby, MacKennel, F1. There is no discussion here on how to set these programs up, this is covered in their manuals.
3. Legal Mumbo Jumbo
This documentation has been checked and some effort has been made
to reduce errors to a minimum, however no liability will be acepted
for any errors found or the consequences of these errors.
Pancake is copyright to Darrell Turner
Macintosh is a trademark licenced to Apple computer,Inc
Zterm is copyright to David Alverson
UUPC is copyright to Dave Platt
Waffle is copyright to Thomas E Dell
Hermes is copyright to Computer Classifieds
Many portions of this manual were originally written by Keith Whitehead.
Email: sir@office.manawatu.gen.nz or K.J.Whitehead@massey.ac.nz
Many thanks to Mr. Whitehead's efforts.
The rest of the documentation is by Darrell Turner, author of Pancake.
Email: ferrari@netaxs.com
4. Getting Started
1. Launch Pancake
2. Go into Port Prefs and configure (See Section 3 for more info)
3. Go into System Prefs to configure (See Section 4 for more info)
4. Setup the Groups (See section 5)
5. Edit the texts in "Open Special" to meet your needs
6. Local Logon and create NEW user.
7. Make an Global Alias file that points the Sysop->to you (See Tidbits)
5. Port Prefs
There is always 1 port set, the local one for sysop use. This version of Pancake supports 3 ports in this release. One for local logon, and two to setup as you please (TCP/IP, Serial, or AppleTalk). If you need more, the price is just 10 dollars per port! (Subject to change in the future of course).
To create a new port select New. Select the 'Num' drop box and choose port just created. (Ports are always added to the end, and deleted from the end). From here the type of port can be selected with the 'Type' drop box.
Serial
Use the 'Port' drop box to select which port you modem is connected to.
The 'Baud' drop box allows you to select the rate at which Pancake
will talk to the modem,the maximum serial speed that your modem supports would normally be selected, this will be different in many cases from the maximum baud rate the modem can transmit at. Pagable is
TCP/IP
You will need to have MacTCP installed, and working before you try this.
AppleTalk
6. System Prefs
The system prefs contain many options essentail for the correct operation
of the BBS.Read this section carefully as it has the most affect on how
you BBS will work.A little care here can save hours of agravation later.
General
BBS Name - The name of your BBS
Organ - The name of your organization or BBS name (Used in usenet posts mainly)
Require NUP - The "Require NUP" check box can be set if you wish to limit new users to those who know the New User Password. This can be useful in limiting new users to authorised people even if your phone number has somehow become local knowledge. If you use this option it will pay to change the password regularly.
Local Protection - When enabled, a password is required to do anything more than Local Login. This is useful if the BBS Computer is in a public place and you wish to have some security preventing unauthorised changes.
Password - The password required if local protection is checked
Enable Screen Saver - If checked pancake will display a screen saver whenever the idle time specified is reached, or the cursor is in the bottom right corner.
Saver Idle Time - Time system must be idle before screen saver appears.
Strict Phone - If checked the phone number must be in the format specified by the string. If not check any 20 (or more) characters will do.
Format - Format the phone number must be in. Easily customizable for foriegn countries phone number format.
Logs
Pancake has very extensive logging facillities. Different errors appear in different log files. This box enable you to set what information should appear in the general log. Until you are more familiar with the operation of the BBS it is advisable to leave all of the check boxes checked. This will enable you to more easily see where any problems may be occuring. The use of the separate errors log will be also of use if problems occur. Some of the options are not yet implemented such as the scheduler, however leaving these options checked will have no affect on the logs.
Network
These boxes are to setup the paths that the system requires if you are
going to be gating any network (UUCP/Fidonet) newsgroups. Simply click in any of the boxes and a dialog box will appear so you can find the relevant file/folder.
UUPC - This is an application by Dave Platt.This application is freeware. Set this up to the application itself to launch. UUPC requires much setting up independent of Pancake. The manual that comes
with UUCP covers what you will need to know to set it up and is not covered further in this manual.
UUCP File - UUCP File allows to to launch UUPC with a call initiation file that will call the systems needed and then quit. Read the manual that comes with UUCP for information on call initiation files.
Parse News - Parse News is an aplication that comes with Pancake. Parse news will sort out any incomming via UUCP/Fidonet. It also exports news from Pancake to UUCP/Fidonet software. Set this path to the application.
Term Prog - This enables you to use your existing terminal program with Pancake. Pancake does not have any terminal emulation built in but has the ability to sieze the port back from a terminal package after it has quit. The recommended term program is Zterm a shareware package by David Alverson. I encourage you to pay the fees asked by David for
his excellent product.
Paging
This is unique among BBS's, built in numeric paging. You should have
knowledge of your pager and how to call it before you set this option.
If set this will allow users to call you on your pager, this will happen
as soon as they have logged off the BBS as it uses the modem to dial
your paging service. If you have more than one node and the other node is free it can send the page immediatly.
Paging On - Turn this on if you wish to use the paging features.
Acs To Beep - This limits who can beep you. Unless the user has a high enough access level they will not be allowed to page you.
Phone Number - This is the number to your automated paging service. You will probably need commas to delay until it is ready to accept the numbers. Also, If you have a pulse phone (don't laugh, you'll need to precede the phone number with a p and put at the end a t (to switch it to tone). If you are using tone dialing make sure the t is at the begining.
Max Calls Per Day - Use this option to limit the number of calls your pager will receive per day.
Max Digits - Set this to the maximum number of digits that your pager is able to display.
Encode Letters - If checked this will encode any letters the users put into numeric strings, based on the letter to number matching on the phone dial.
Max segments - This is the maximum number of segments a long page can be split into.
Paths
These are the paths to folders that are used by the system to store various information. Normally these are all found in the same folder as Pancake. But you can move them to another disk, and configure Pancake to use the new ones. Just click in the boxes and Pancake will bring up a dialog box that will enable you to find the relevant folders.
Users - This is the folder where pancake will create folders for every user on the BBS. Important information particular to each user is stored in their folder. Users can also manipulate data in their folders, much like unix's home directories.
News - This is the folder where Pancake stores the newsgroups. Pancake creates folders inside the News folder for each news group. The folders are created on a heirachial basis. For example the news group comp.sys.mac.comm will create a folder called comp, inside that will be
a folder called sys, inside that mac and inside that comm.
Help - Inside the Help folder can be text files created by you that will act
as help files when a user request help on any subject. These are plain text files with the names of the file being used by the system to select which help file the use wants. See the section on the Help System for more information.
Files - This is for future use, however it is still must be set up correctly.
Bulletins - Files in here are displayed to users once. It displays a file if File Modified Date > User Last Logon Date.
Extern - Files in here are used to extend the functionality of Pancake.
Logs - All logging files are put here.
Internet
Internet allows you setup the headers for outgoing internet mail/posts, and also allows you to setup the access levels required to do each. If you are not using Pancake with UUCP or TCP/IP, skip this section.
Domain - This is the full domain name of you BBS.
News From - This is percent subsituted to get the "From: " line in outgoing news posts. To ensure that the correct headers are generated, this line differs from many UUCP set ups. The line correctly set up should read
%A@<you full domain name>, ie for my site it reads "%A@source.manawatu.gen.nz". You can optionally add a (%W) to the end as shown above (It will add the real name of the user in paranathesis. Read up on percent variables before changing this.
Mail From - This is percent subsituted to get the "From: " line in outgoing MAIL posts. In almost all cases this should be the same as the News From above.
Time Zone - This is the time zone you are in. EST, PST, or -500 forms are accepted.
Post Acs - This is the minimum access level that a user must have to post news to a usenet group.
Send Mail Acs - The level of access required to send Email.
Recieve Mail Acs - Like send mail, however this is the required access level to recieve mail.
Mail Service - This is the name of the smart host that your email is gated from
Do NOT place the full domain name here, it will be a simple node
name which may be different from their node name.This name must be
the same as the one set up in UUCP.If you do not understand the
setting up of UUCP find someone who does.
UUCP
This is some information that the system uses when exporting news and mail via UUCP. You should have an understanding of how UUCP works to set this up.
Post Locally - This is normally checked. If not checked outgoing UUCP posts will not be posted to the local system. You will want the checkbox off if you are using NNTP Sucker, beacause the outgoing posts are received back after posting, and if on it would make a duplicate post. UUPC on the other hand will not send you a post that orginated from your system, so you will want it on for that.
UUCP Node - This is the name of your uucp node
UUCP Mail - If checked internet mail will be send via UUCP (Pancake will try to send it TCP/IP first if you have that setup).
Launch UUCP - Setup this to launch UUCP every hour, 2 hours, etc.
Hangup on users - If checked when it is time to do UUCP it will hangup on the users. If not checked, it will launch UUCP after all users are off.
Launch Sucker - Setup this to launch NNTP Sucker every hour, 2 hours, etc.
Sucker Hangup - The same as Hangup on users except it's for sucker.
TCP/IP
This is the information the system uses to do STMP and POP via MacTCP.
If you do not have MacTCP up and running leave both check boxes unchecked.
STMP Mail - If checked the system will send mail via STMP. If for some reason it can't send the mail via STMP, and UUCP Mail is checked above, it will try that second.
STMP Relay - This is the site STMP Mail sends any mail to. Set this like you would Eudora.
Use POP Server - If checked any time a user logs in Pancake will try and do a POP retrieve from POP Site with the name of that user as the POP Name, and the password of the user as the POP Password. (Also make sure the POP checkbox for that user is checked in the user edit).
POP Site - This is the site the POP Server is located on.
Telnet Acs - Users must have this access to do a telnet.
Finder Outside Acs - Users must have this access to do a finger to a remote site.
Ports
Ports is where you setup the information Pancake uses for it's port negotiation. All port numbers are refering to pancake's ports. Port 1 is the local port so don't use it. Port 2 is the first real port. The port numbers are the exact same ones from Port Prefs. Only ports that are of type Serial should be used. (All the port negotiation is with Serial ports).
Sucker Port - When sucker is run which port must be free? If you use a port for both dial-in serial, and MacTCP, set sucker port to that. If you have a dedicated internet connection, or use a dedicated serial port for MacTCP, set the sucker port to zero.
UUCP Port - When UUCP is run which port must be free? If you use a port for both dial-in serial, and UUCP, set uucp port to that. If you have a dedicated uucp connection, or use a dedicated serial port for uucp set the uucp port to zero.
Term Port - This is used to release and grab back the serial port when you choose to launch the terminal program. If you use the terminal on a dedicated serial port set this to zero.
PPP Enable - Pancake has the ability to see when MacPPP is up or down. If you wish for port negotiation with MacPPP then check this.
PPP Port - The port that MacPPP shares with Pancake. Only used if PPP Enable is set.
Open PPP - If checked and a user tries to send a mail, or telnet with PPP down this will start it up.
Close PPP - If Pancake started up PPP with this checked it will kill it before continuing
Hard Close - When closing if this is checked Pancake will perform a hard close. See MacPPP for more information.
Chat
These are all the different options for users requesting chat's with you. SOS is like requesting a chat but with a different sound.
Chat Sound - Sound to use when user requests a chat
Speak Reason - If selected the Speech Manager will speak the reason for chat.
SOS Sound - Default sound to use when user types SOS at main menu. SOS can take a parameter to play a different sound.
Chat Acs - User must have this access to do chat.
SOS Acs - User must have this access to do SOS.
Misc
These are the miscellanious settings that don't fit anywhere else.
Print Acs - The access a user must have to Rrint
Redirect - The access a user must have to Redirect.
Passwords Echo X's - If checked Pancake will echo X's for passwords instead of echoing nothing. This is a little bit less security (people see how long your password is), but is more understandable for kids (in a educational lab setting).
Show Hotkey Menu First - This will automatically display the hotkey menu instead of requiring the user to press ?. Only intended for educational lab setting.
7. Groups
Name - These are the message/news groups that you have on your system, take care in what you name them, especially if you are going to support any network groups from usenet and/or fidonet.
Read Acs - Security level required to be able to read a group
Post Acs - Security level required to be able to post a message to the group, this is generally higer than reading
Keep - Number of messages to keep, this may vary from 1 to more than 10000
Type -
Local - These groups are local to the BBS and are NOT exported to usenet or fidonet.
Usenet - These groups are exported/imported via UUCP to usenet. Make sure you only have valid news groups.
Fidonet - These groups are exported/imported via a fido gateway such as Tabby/Formula1/etc to fidonet. Make sure you only have valid news groups.
Allow Anon - If checked this will allow users to "dis-own" a posting by placing anonymous rather than their name as the sender.
Default Joined - If checked it will be added to every new users join file.
8. Menus
Menu Editor is where you setup the hotkey menu, and any other sub menus.
9. Commands
These are all the commands you can put in the "Main Menu" field of the Menu Editor or you can type any of these in the Waffle shell.
MAN give help on command
OFF logs user off (If hotkey does Are You Sure)
USERS lists all users
FEEDBACK sends Feedback to user 'Sysop'
RN read news
READ read only selected group
REDIRECT take control over first available serial port
ONELINER send onliner to another node
JOIN setup rn groups (can take parameter)
UNJOIN ditto
MULTICHAT multi-node chat
CHAT request chat with the sysop
SOS play selected sound (or no sound if user doesn't have access)
CD.. go up one directory
CD change directory
WAFFLE if user is in hotkey makes a temp waffle shell
SELECT prompt for newsgroup to make current
PROMPT change prompt to parameter
SHOW lists last 240 lines of a log file
LAST shows last 10 lines of the callers file
TAIL "filename" [lines] shows last lines of a file
SZ send file with zmodem
SY send file with ymodem
SX send file with xmodem
RZ receive file with zmodem
RY receive file with ymodem
RX receive file with xmodem
ACS tool for testing out ACS strings
REEXT tool for debugging externals (or installing them remotely)
re-loads all externals
SHELL change shell
EDITOR change editor
PAGE page sysop's beeper
UUCP launches the uucp app must have a priv of 9!
SUCK launches the suck app must have priv 9
ONLINE lists users online
FINGER finger a local user, or a remote one if tcp is up
TELNET telnet to remote site paramters are: site port send-expect sequence
POST post to local group
MAIL read mail
[ or < flip through groups
] or > flip through groups the other way
? shows menu
HELP goes into help
INFO goes into info
CLS clear screen
LOGIN re-login
TYPE or CAT lists a file
MD or MKDIR make a directory
DEL or RM delete a file
DIR or LS get directory of current directory
EXIT or QUIT logs User Out (If user is in temp Waffle Shell returns to
hotkey)
BYE or /O or LOGOUT or LOGOFF Logs user off
A few other things can be called from a command:
1. The names of externals are compared to current command, if one matches
the external is started.
2. Menus are searched, if one on the names matches the current command, the
menu is switched to.
3. If User has a "Aliases" file in their directory and an entry for current
command the alias is resolved (ie a new command is run)
4. Groups are searched to see if user is selecting a new current message
group
10. Acs's
Acs commands are composed of a command descriptor and a parameter. The command descriptor is a upper or lowercase letter. The param is a positive number from 0 to 32767. The parameter can be omitted, if it is, it defaults to 0.
p - True if user has a priv of at least the paramater
a - True if user has a access level of at least the parameter.
g - True if user has an age of at least the parameter
s1 - True if uucp is currently loaded.
s2 - True if sucker is currently loaded.
s3 - True if terminal is currently loaded.
s4 - True if MacPPP's state is OPEN
The following are the unimplemented commands:
s0 - True if user is male (using sexist acs's is unpolitically correct tho)
e1 - True if user has at least TTY (always true)
e2 - True if user has at least VT100 (true if has VT100, ANSI or RIP emulation)
e3 - True if user has at least ANSI (true if has ANSI, or RIP emulation)
e4 - True if user has RIP emulation
P - True if user has a post call ratio of 1 to param
r - True if user has a particular restriction (a..z) poss values (r1..r26)
t - True if the current time is equal or past the specified time in
military time
D - True if user has maintained a upload to download ratio of 1 to param
d - True if user has downloaded at least the param of kilobytes
u - True if user has uploaded at least the param of kilobytes
Each command returns a true or false which is used to see if the user will be able to gain access to a feature, such as telnet, and newsgroups.
Acs's have an implied AND between every command so something like "p3a3" would gain access only if BOTH commands returned true. But there are other special operators that allow you to evaluate the acs expression differently.
& - Immediate AND
! - NOT command
| - OR command
The OR operator takes the commands and returns a true if either command returns a true, or a false if neighter do. The Immediate AND operator is just like the implied one, only it is evaluated first. The NOT operator takes the command after it and returns a true if the command returned a false, and a false if it returned true.
The order the operators are evaluated is very important. The order is &, !, | and then the implied AND. This makes possible the following "g18|a2&g16".
That would allow a user of access level of zero through one and at least 18 years old, or if he was access level 2 he would only have to be at least 16 years old. The order the acs is evaluated in is very important. Look at "g18|a2g16" It looks the same, but it evaluated differntly because the | operator is evaluated before the implied AND.
Look at the following tables, the commands have been replaced to 1 or 0 for all the possible values. The first column is the first example, and second column is the second example, see how they evaluate differently:
0|00 = 0 0|0&0 = 0
0|01 = 0 0|0&1 = 0
0|10 = 0 0|1&0 = 0
0|11 = 1 0|1&1 = 1
1|00 = 0 1|0&0 = 0
1|01 = 1 1|0&1 = 0
1|10 = 0 1|1&0 = 0
1|11 = 1 1|1&1 = 1
The NOT operator ! is used to make a command operate in the oposite way. For example r13 returns true if the user has the "m" restriction, !r13 would return true if the user DOESN'T have the "m" restriction. !a5 would return true if the user has a access level of 4 or lower.
Well that concludes my trying to teach people how to use acs's properly, if you still don't understand you don't need to know more than that "a1p2g16r13" will be true if the user has at least and access level of 1, a priv of 2, and age of 16, and restriction 13.
11. Percent Variables
%A Username
%B Age
%C Cookie
%D Current Date
%E Editor
%F Free Memory
%L LastCall time and date
%O Time Left
%S Time Spent on BBS
%T Current Time
%V Pancake Version
%W Name
%a Access Level
%b Birthday date
%c Cps Rate
%d Download k
%i Answer to last prompt
%l Last Caller username
%o Time left (minutes)
%p Privelage
%s Sex (M or F)
%u Upload k
%[ Minimum message of current group
%= Number of current messgae or mail
%+ Number of current message or mail plus one (next mail or mess)
%] Max message or mail of current group or mailbox
unix telnet unix5 - login: ferrari word: pass % "%i"
unix2 telnet unix2 - login: ferrari word: pass % "%i"
alamut telnet alamut.st.hmc.edu Login ferrari word: pass
The first word MUST be in all lower caps. This is the main menu command to be aliased. The Aliases file must be put in the home directory of a user. It is only used for that user. There is also a GLOBAL Aliases file that is put in the Pancake:System folder. Everything after the first word is what is replaced by the command. For example, if you type "lynx www.bob.com" the first alias will translate it into "telnet unix5 - login: ferrari word: pass % "lynx www.bob.com". The example telnets to a remote machine logs in and spits out a command at the % prompt.
There is a second type of Aliases file, it it used in the Help directory.
This is an example:
faqs Info:Faqs
1 DocOne
2 DocTwo
It does the same thing as the first Aliases file. The first word is replaced with the last two or more words. It like all Aliases and Nicknames files must have the first word in all lower caps.
This is a example Nicknames file:
jim jim@xmission.com
tsa tsa@netaxs.com
It is put in either a users home directory or the Pancake:System folder. Just like Aliases. It used for sending mail. The global Nicknames can also be used for receiving uucp mail.
Example global "Nicknames" file:
1 sysop
postmaster sysop
sysop ferrari
The sysop ferrari line is needed so that FEEDBACK will send mail to you!
Replace ferrari with your login name of course.
Multi-Chat Actions
Only two default actions are provided with Pancake, but you are free to add as many as you want. Actions are used in Multi-Chat for example:
Ferrari > kiss bart
You take Bart into your arms and passionately kiss him.
Ferrari > kill bart
You take out your sword and slice Bart into little tiny pieces.
All you have to do to add more is add more entries to STR# 210. Three entries are used for each action. They are pretty self explanatory.
UUCP Editable Texts
Str# 208 Controls the filenames used for the 3 files produced.
Text 201-204 Controls the contents of the files. Modify these only if you have read up on UUCP and know what you are doing.
Prompts
Str# 200-207 Can be modified to display new prompts, status lines, etc. It will eventually have it's own editor (tried to write one once but it didn't work, and had to trash it).
Default User
If you wish new users to be setup differently than the default, create a user called "Default". Set up the user like you want each new user to be. Whenever a new user logs in, the Default user is copied to make the default settings for that user. You can use this for example to make all new users have a Waffle style shell. Make sure the Default user has a non-ovious password, so people don't hack it.